From: Debian Rust Maintainers Date: Thu, 24 Apr 2025 19:36:28 +0000 (+0000) Subject: Disable arm-specific codepaths X-Git-Tag: archive/raspbian/0.17.14-5+rpi1~2 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/%22mailto:kde%40ewsoftware.de/%22style.css//%22mailto:%22/%22http:/www.example.com/%22mailto:kde%40ewsoftware.de/%22style.css/%22mailto:%22?a=commitdiff_plain;h=68515f207e7a7e70e9421d9e8bee43a79edfe6fd;p=rust-ring.git Disable arm-specific codepaths they cause the resulting code to come out with armv7 markers, which is a problem given the way rust applications are statically linked. Changes in src and tests were made with the commands for file in `find src -name '*.rs'` ; do sed -i 's/target_arch = "arm"/target_arch = "armxxx"/g' $file ; done for file in `find tests -name '*.rs'` ; do sed -i 's/target_arch = "arm"/target_arch = "armxxx"/g' $file ; done Other changes were made manually. Author: Peter Michael Green Gbp-Pq: Name disable-arm-specific-codepaths.patch --- diff --git a/Cargo.lock b/Cargo.lock index 7ca88ee..ac03edf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,12 +2,6 @@ # It is not intended for manual editing. version = 3 -[[package]] -name = "bumpalo" -version = "3.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c59e7af012c713f529e7a3ee57ce9b31ddd858d4b512923602f74608b009631" - [[package]] name = "cc" version = "1.2.13" @@ -30,20 +24,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", - "js-sys", "libc", "wasi", - "wasm-bindgen", -] - -[[package]] -name = "js-sys" -version = "0.3.74" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a865e038f7f6ed956f788f0d7d60c541fff74c7bd74272c5d4cf15c63743e705" -dependencies = [ - "once_cell", - "wasm-bindgen", ] [[package]] @@ -52,46 +34,6 @@ version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" -[[package]] -name = "log" -version = "0.4.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" - -[[package]] -name = "minicov" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f27fe9f1cc3c22e1687f9446c2083c4c5fc7f0bcf1c7a86bdbded14985895b4b" -dependencies = [ - "cc", - "walkdir", -] - -[[package]] -name = "once_cell" -version = "1.20.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e" - -[[package]] -name = "proc-macro2" -version = "1.0.93" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" -dependencies = [ - "proc-macro2", -] - [[package]] name = "ring" version = "0.17.14" @@ -101,261 +43,22 @@ dependencies = [ "getrandom", "libc", "untrusted", - "wasm-bindgen-test", - "windows-sys 0.52.0", -] - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", ] -[[package]] -name = "scoped-tls" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" - [[package]] name = "shlex" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" -[[package]] -name = "syn" -version = "2.0.98" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "unicode-ident" -version = "1.0.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a210d160f08b701c8721ba1c726c11662f877ea6b7094007e1ca9a1041945034" - [[package]] name = "untrusted" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" -[[package]] -name = "walkdir" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" -dependencies = [ - "same-file", - "winapi-util", -] - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.97" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d15e63b4482863c109d70a7b8706c1e364eb6ea449b201a76c5b89cedcec2d5c" -dependencies = [ - "cfg-if", - "once_cell", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.97" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d36ef12e3aaca16ddd3f67922bc63e48e953f126de60bd33ccc0101ef9998cd" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.47" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dfaf8f50e5f293737ee323940c7d8b08a66a95a419223d9f41610ca08b0833d" -dependencies = [ - "cfg-if", - "js-sys", - "once_cell", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.97" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "705440e08b42d3e4b36de7d66c944be628d579796b8090bfa3471478a2260051" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.97" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98c9ae5a76e46f4deecd0f0255cc223cfa18dc9b261213b8aa0c7b36f61b3f1d" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.97" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ee99da9c5ba11bd675621338ef6fa52296b76b83305e9b6e5c77d4c286d6d49" - -[[package]] -name = "wasm-bindgen-test" -version = "0.3.47" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d919bb60ebcecb9160afee6c71b43a58a4f0517a2de0054cd050d02cec08201" -dependencies = [ - "js-sys", - "minicov", - "once_cell", - "scoped-tls", - "wasm-bindgen", - "wasm-bindgen-futures", - "wasm-bindgen-test-macro", -] - -[[package]] -name = "wasm-bindgen-test-macro" -version = "0.3.47" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222ebde6ea87fbfa6bdd2e9f1fd8a91d60aee5db68792632176c4e16a74fc7d8" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "web-sys" -version = "0.3.74" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a98bc3c33f0fe7e59ad7cd041b89034fa82a7c2d4365ca538dda6cdaf513863c" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "winapi-util" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" diff --git a/build.rs b/build.rs index fda7163..a6992ad 100644 --- a/build.rs +++ b/build.rs @@ -430,7 +430,7 @@ fn build_c_code( out_dir: &Path, core_name_and_version: &str, ) { - let (asm_srcs, obj_srcs) = if let Some(asm_target) = asm_target { + let (mut asm_srcs, mut obj_srcs) = if let Some(asm_target) = asm_target { let perlasm_src_dsts = perlasm_src_dsts(generated_dir, asm_target); let asm_srcs = asm_srcs(perlasm_src_dsts); @@ -450,6 +450,11 @@ fn build_c_code( (vec![], vec![]) }; + if target.arch == "arm" { + asm_srcs = vec![]; + obj_srcs = vec![]; + } + let core_srcs = sources_for_arch(&target.arch) .into_iter() .filter(|p| !is_perlasm(p)) diff --git a/include/ring-core/target.h b/include/ring-core/target.h index fe40db7..d3db29a 100644 --- a/include/ring-core/target.h +++ b/include/ring-core/target.h @@ -31,9 +31,6 @@ #elif defined(__AARCH64EL__) || defined(_M_ARM64) #define OPENSSL_64_BIT #define OPENSSL_AARCH64 -#elif defined(__ARMEL__) || defined(_M_ARM) -#define OPENSSL_32_BIT -#define OPENSSL_ARM // All of following architectures are only supported when `__BYTE_ORDER__` can be used to detect // endianness (in crypto/internal.h). #elif !defined(__BYTE_ORDER__) @@ -44,13 +41,8 @@ #error "Unsupported endianness" #elif defined(__LP64__) #define OPENSSL_64_BIT -#elif defined(__ILP32__) -#define OPENSSL_32_BIT -// Versions of GCC before 10.0 didn't define `__ILP32__` for all 32-bit targets. -#elif defined(__MIPSEL__) || defined(__MIPSEB__) || defined(__PPC__) || defined(__powerpc__) || defined(__csky__) || defined(__XTENSA__) -#define OPENSSL_32_BIT #else -#error "Unknown target CPU" +#define OPENSSL_32_BIT #endif #if defined(__APPLE__) @@ -79,9 +71,9 @@ // Disable 32-bit Arm assembly on Apple platforms. The last iOS version that // supported 32-bit Arm was iOS 10. -#if defined(OPENSSL_APPLE) && defined(OPENSSL_ARM) +//#if defined(OPENSSL_APPLE) && defined(OPENSSL_ARM) #define OPENSSL_ASM_INCOMPATIBLE -#endif +//#endif #if defined(OPENSSL_ASM_INCOMPATIBLE) #undef OPENSSL_ASM_INCOMPATIBLE diff --git a/src/aead/aes.rs b/src/aead/aes.rs index fae608c..2ff430c 100644 --- a/src/aead/aes.rs +++ b/src/aead/aes.rs @@ -54,7 +54,7 @@ pub(super) enum Key { #[cfg(any( all(target_arch = "aarch64", target_endian = "little"), - all(target_arch = "arm", target_endian = "little"), + all(target_arch = "armxxx", target_endian = "little"), target_arch = "x86", target_arch = "x86_64" ))] @@ -84,7 +84,7 @@ impl Key { #[cfg(any( all(target_arch = "aarch64", target_endian = "little"), - all(target_arch = "arm", target_endian = "little"), + all(target_arch = "armxxx", target_endian = "little"), target_arch = "x86_64", target_arch = "x86" ))] @@ -109,7 +109,7 @@ impl Key { #[cfg(any( all(target_arch = "aarch64", target_endian = "little"), - all(target_arch = "arm", target_endian = "little"), + all(target_arch = "armxxx", target_endian = "little"), target_arch = "x86", target_arch = "x86_64" ))] diff --git a/src/aead/aes/bs.rs b/src/aead/aes/bs.rs index 2e418bb..01a2ddc 100644 --- a/src/aead/aes/bs.rs +++ b/src/aead/aes/bs.rs @@ -12,7 +12,7 @@ // OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN // CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -#![cfg(all(target_arch = "arm", target_endian = "little"))] +#![cfg(all(target_arch = "armxxx", target_endian = "little"))] use super::{Counter, Overlapping, AES_KEY}; diff --git a/src/aead/aes/ffi.rs b/src/aead/aes/ffi.rs index c2286e1..729c05b 100644 --- a/src/aead/aes/ffi.rs +++ b/src/aead/aes/ffi.rs @@ -60,7 +60,7 @@ impl AES_KEY { } } -#[cfg(all(target_arch = "arm", target_endian = "little"))] +#[cfg(all(target_arch = "armxxx", target_endian = "little"))] impl AES_KEY { pub(super) unsafe fn derive( f: for<'a> unsafe extern "C" fn(*mut AES_KEY, &'a AES_KEY), diff --git a/src/aead/aes/vp.rs b/src/aead/aes/vp.rs index 283cd7d..4352d84 100644 --- a/src/aead/aes/vp.rs +++ b/src/aead/aes/vp.rs @@ -14,7 +14,7 @@ #![cfg(any( all(target_arch = "aarch64", target_endian = "little"), - all(target_arch = "arm", target_endian = "little"), + all(target_arch = "armxxx", target_endian = "little"), target_arch = "x86", target_arch = "x86_64" ))] @@ -24,7 +24,7 @@ use crate::{cpu, error}; #[cfg(any( all(target_arch = "aarch64", target_endian = "little"), - all(target_arch = "arm", target_endian = "little") + all(target_arch = "armxxx", target_endian = "little") ))] type RequiredCpuFeatures = cpu::arm::Neon; @@ -48,7 +48,7 @@ impl Key { #[cfg(any( all(target_arch = "aarch64", target_endian = "little"), - all(target_arch = "arm", target_endian = "little"), + all(target_arch = "armxxx", target_endian = "little"), target_arch = "x86_64" ))] impl EncryptBlock for Key { @@ -71,7 +71,7 @@ impl EncryptCtr32 for Key { } } -#[cfg(all(target_arch = "arm", target_endian = "little"))] +#[cfg(all(target_arch = "armxxx", target_endian = "little"))] impl EncryptCtr32 for Key { fn ctr32_encrypt_within(&self, in_out: Overlapping<'_>, ctr: &mut Counter) { use super::{super::overlapping::IndexError, bs, BLOCK_LEN}; diff --git a/src/aead/aes_gcm.rs b/src/aead/aes_gcm.rs index d9e08a3..4d87f67 100644 --- a/src/aead/aes_gcm.rs +++ b/src/aead/aes_gcm.rs @@ -27,7 +27,7 @@ use core::ops::RangeFrom; #[cfg(any( all(target_arch = "aarch64", target_endian = "little"), - all(target_arch = "arm", target_endian = "little"), + all(target_arch = "armxxx", target_endian = "little"), target_arch = "x86", target_arch = "x86_64" ))] @@ -66,7 +66,7 @@ enum DynKey { #[cfg(any( all(target_arch = "aarch64", target_endian = "little"), - all(target_arch = "arm", target_endian = "little") + all(target_arch = "armxxx", target_endian = "little") ))] Simd(Combo), @@ -112,7 +112,7 @@ impl DynKey { #[cfg(any( all(target_arch = "aarch64", target_endian = "little"), - all(target_arch = "arm", target_endian = "little") + all(target_arch = "armxxx", target_endian = "little") ))] if let Some(cpu) = cpu.get_feature() { return Self::new_neon(key, cpu); @@ -129,7 +129,7 @@ impl DynKey { #[cfg(any( all(target_arch = "aarch64", target_endian = "little"), - all(target_arch = "arm", target_endian = "little") + all(target_arch = "armxxx", target_endian = "little") ))] #[cfg_attr(target_arch = "aarch64", inline(never))] fn new_neon(key: aes::KeyBytes, cpu: cpu::arm::Neon) -> Result { @@ -154,7 +154,7 @@ impl DynKey { #[cfg_attr( any( all(target_arch = "aarch64", target_endian = "little"), - all(target_arch = "arm", target_endian = "little"), + all(target_arch = "armxxx", target_endian = "little"), target_arch = "x86", target_arch = "x86_64", ), @@ -210,7 +210,7 @@ pub(super) fn seal( #[cfg(any( all(target_arch = "aarch64", target_endian = "little"), - all(target_arch = "arm", target_endian = "little"), + all(target_arch = "armxxx", target_endian = "little"), target_arch = "x86_64", target_arch = "x86" ))] @@ -243,7 +243,7 @@ fn seal_whole_partial( #[cfg_attr( any( all(target_arch = "aarch64", target_endian = "little"), - all(target_arch = "arm", target_endian = "little"), + all(target_arch = "armxxx", target_endian = "little"), target_arch = "x86", target_arch = "x86_64" ), @@ -338,7 +338,7 @@ pub(super) fn open( #[cfg(any( all(target_arch = "aarch64", target_endian = "little"), - all(target_arch = "arm", target_endian = "little"), + all(target_arch = "armxxx", target_endian = "little"), target_arch = "x86_64", target_arch = "x86" ))] @@ -386,7 +386,7 @@ fn open_whole_partial( all( any( all(target_arch = "aarch64", target_endian = "little"), - all(target_arch = "arm", target_endian = "little") + all(target_arch = "armxxx", target_endian = "little") ), target_feature = "neon" ), diff --git a/src/aead/chacha.rs b/src/aead/chacha.rs index 0b228ce..e382a0b 100644 --- a/src/aead/chacha.rs +++ b/src/aead/chacha.rs @@ -20,7 +20,7 @@ use cfg_if::cfg_if; cfg_if! { if #[cfg(any( all(target_arch = "aarch64", target_endian = "little"), - all(target_arch = "arm", target_endian = "little"), + all(target_arch = "armxxx", target_endian = "little"), target_arch = "x86", target_arch = "x86_64" ))] { @@ -97,7 +97,7 @@ impl Key { unsafe { (1, (), Overlapping<'_>) => ChaCha20_ctr32_nohw }, self, counter, in_out, ()) } - } else if #[cfg(all(target_arch = "arm", target_endian = "little"))] { + } else if #[cfg(all(target_arch = "armxxx", target_endian = "little"))] { use cpu::{GetFeature as _, arm::Neon}; const NEON_MIN_LEN: usize = 192 + 1; if in_out.len() >= NEON_MIN_LEN { @@ -183,7 +183,7 @@ impl Counter { test, not(any( all(target_arch = "aarch64", target_endian = "little"), - all(target_arch = "arm", target_endian = "little"), + all(target_arch = "armxxx", target_endian = "little"), target_arch = "x86_64" )) ))] @@ -218,7 +218,7 @@ mod tests { // Always use `MAX_OFFSET` if we hav assembly code. let max_offset = if cfg!(any( all(target_arch = "aarch64", target_endian = "little"), - all(target_arch = "arm", target_endian = "little"), + all(target_arch = "armxxx", target_endian = "little"), target_arch = "x86", target_arch = "x86_64" )) { diff --git a/src/aead/gcm/ffi.rs b/src/aead/gcm/ffi.rs index c655a0d..922b767 100644 --- a/src/aead/gcm/ffi.rs +++ b/src/aead/gcm/ffi.rs @@ -23,7 +23,7 @@ pub(super) const ZERO_BLOCK: Block = [0u8; BLOCK_LEN]; #[cfg(any( all(target_arch = "aarch64", target_endian = "little"), - all(target_arch = "arm", target_endian = "little"), + all(target_arch = "armxxx", target_endian = "little"), target_arch = "x86", target_arch = "x86_64" ))] @@ -42,7 +42,7 @@ macro_rules! htable_new { /// `ghash()`. #[cfg(any( all(target_arch = "aarch64", target_endian = "little"), - all(target_arch = "arm", target_endian = "little"), + all(target_arch = "armxxx", target_endian = "little"), target_arch = "x86", target_arch = "x86_64" ))] @@ -79,7 +79,7 @@ impl KeyValue { /// * `f` may inspect CPU features. #[cfg(any( all(target_arch = "aarch64", target_endian = "little"), - all(target_arch = "arm", target_endian = "little"), + all(target_arch = "armxxx", target_endian = "little"), target_arch = "x86", target_arch = "x86_64" ))] @@ -97,7 +97,7 @@ impl HTable { #[cfg(any( all(target_arch = "aarch64", target_endian = "little"), - all(target_arch = "arm", target_endian = "little") + all(target_arch = "armxxx", target_endian = "little") ))] pub(super) unsafe fn gmult( &self, diff --git a/src/aead/gcm/neon.rs b/src/aead/gcm/neon.rs index 814cd52..e6084b3 100644 --- a/src/aead/gcm/neon.rs +++ b/src/aead/gcm/neon.rs @@ -14,7 +14,7 @@ #![cfg(any( all(target_arch = "aarch64", target_endian = "little"), - all(target_arch = "arm", target_endian = "little") + all(target_arch = "armxxx", target_endian = "little") ))] use super::{HTable, KeyValue, UpdateBlock, UpdateBlocks, Xi, BLOCK_LEN}; diff --git a/src/aead/overlapping/base.rs b/src/aead/overlapping/base.rs index 6923587..0fbc7c7 100644 --- a/src/aead/overlapping/base.rs +++ b/src/aead/overlapping/base.rs @@ -38,7 +38,7 @@ impl<'o, T> Overlapping<'o, T> { } #[cfg(any( - all(target_arch = "arm", target_endian = "little"), + all(target_arch = "armxxx", target_endian = "little"), target_arch = "x86" ))] pub fn copy_within(self) -> &'o mut [T] @@ -55,7 +55,7 @@ impl<'o, T> Overlapping<'o, T> { } #[cfg(any( - all(target_arch = "arm", target_endian = "little"), + all(target_arch = "armxxx", target_endian = "little"), target_arch = "x86" ))] pub fn into_slice_src_mut(self) -> (&'o mut [T], RangeFrom) { diff --git a/src/aead/poly1305.rs b/src/aead/poly1305.rs index d8c1578..aa9905a 100644 --- a/src/aead/poly1305.rs +++ b/src/aead/poly1305.rs @@ -15,7 +15,7 @@ // TODO: enforce maximum input length. use super::{Tag, TAG_LEN}; -#[cfg(all(target_arch = "arm", target_endian = "little"))] +#[cfg(all(target_arch = "armxxx", target_endian = "little"))] use crate::cpu::GetFeature as _; use crate::{cpu, polyfill::slice::AsChunks}; @@ -38,7 +38,7 @@ impl Key { } pub(super) enum Context { - #[cfg(all(target_arch = "arm", target_endian = "little"))] + #[cfg(all(target_arch = "armxxx", target_endian = "little"))] ArmNeon(ffi_arm_neon::State), Fallback(ffi_fallback::State), } @@ -46,7 +46,7 @@ pub(super) enum Context { impl Context { #[inline] pub(super) fn from_key(key: Key, cpu: cpu::Features) -> Self { - #[cfg(all(target_arch = "arm", target_endian = "little"))] + #[cfg(all(target_arch = "armxxx", target_endian = "little"))] if let Some(cpu) = cpu.get_feature() { return ffi_arm_neon::State::new_context(key, cpu); } @@ -64,7 +64,7 @@ impl Context { fn update_internal(&mut self, input: &[u8]) { match self { - #[cfg(all(target_arch = "arm", target_endian = "little"))] + #[cfg(all(target_arch = "armxxx", target_endian = "little"))] Self::ArmNeon(state) => state.update_internal(input), Self::Fallback(state) => state.update_internal(input), } @@ -73,7 +73,7 @@ impl Context { pub(super) fn finish(mut self, input: &[u8]) -> Tag { self.update_internal(input); match self { - #[cfg(all(target_arch = "arm", target_endian = "little"))] + #[cfg(all(target_arch = "armxxx", target_endian = "little"))] Self::ArmNeon(state) => state.finish(), Self::Fallback(state) => state.finish(), } diff --git a/src/aead/poly1305/ffi_arm_neon.rs b/src/aead/poly1305/ffi_arm_neon.rs index 5c1542d..68670bb 100644 --- a/src/aead/poly1305/ffi_arm_neon.rs +++ b/src/aead/poly1305/ffi_arm_neon.rs @@ -13,7 +13,7 @@ // OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN // CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -#![cfg(all(target_arch = "arm", target_endian = "little"))] +#![cfg(all(target_arch = "armxxx", target_endian = "little"))] use super::{Key, Tag, KEY_LEN, TAG_LEN}; use crate::{c, cpu::arm::Neon}; diff --git a/src/arithmetic/montgomery.rs b/src/arithmetic/montgomery.rs index 4098ece..5c8ada6 100644 --- a/src/arithmetic/montgomery.rs +++ b/src/arithmetic/montgomery.rs @@ -136,7 +136,7 @@ pub(super) fn limbs_mul_mont( (MIN_LIMBS, MOD_FALLBACK, ()) => bn_mul_mont_nohw }) } - } else if #[cfg(all(target_arch = "arm", target_endian = "little"))] { + } else if #[cfg(all(target_arch = "armxxx", target_endian = "little"))] { const MIN_8X: usize = 8; const MOD_8X: usize = 8; if n.len() >= MIN_8X && n.len() % MOD_8X == 0 { @@ -192,7 +192,7 @@ pub(super) fn limbs_mul_mont( cfg_if! { if #[cfg(not(any( all(target_arch = "aarch64", target_endian = "little"), - all(target_arch = "arm", target_endian = "little"), + all(target_arch = "armxxx", target_endian = "little"), target_arch = "x86_64")))] { // TODO: Stop calling this from C and un-export it. @@ -250,7 +250,7 @@ cfg_if! { feature = "alloc", not(any( all(target_arch = "aarch64", target_endian = "little"), - all(target_arch = "arm", target_endian = "little"), + all(target_arch = "armxxx", target_endian = "little"), target_arch = "x86_64" )) ))] @@ -282,7 +282,7 @@ pub(super) fn limbs_from_mont_in_place(r: &mut [Limb], tmp: &mut [Limb], m: &[Li #[cfg(not(any( all(target_arch = "aarch64", target_endian = "little"), - all(target_arch = "arm", target_endian = "little"), + all(target_arch = "armxxx", target_endian = "little"), target_arch = "x86_64" )))] fn limbs_mul(r: &mut [Limb], a: &[Limb], b: &[Limb]) { @@ -302,7 +302,7 @@ fn limbs_mul(r: &mut [Limb], a: &[Limb], b: &[Limb]) { test, not(any( all(target_arch = "aarch64", target_endian = "little"), - all(target_arch = "arm", target_endian = "little"), + all(target_arch = "armxxx", target_endian = "little"), target_arch = "x86_64", )) ))] diff --git a/src/cpu.rs b/src/cpu.rs index 293e1b5..05b0898 100644 --- a/src/cpu.rs +++ b/src/cpu.rs @@ -63,7 +63,7 @@ macro_rules! impl_get_feature { IntelCpu, #[cfg(any(all(target_arch = "aarch64", target_endian = "little"), - all(target_arch = "arm", target_endian = "little"), + all(target_arch = "armxxx", target_endian = "little"), target_arch = "x86", target_arch = "x86_64"))] // Synthesized to ensure the dynamic flag set is always non-zero. // @@ -147,7 +147,7 @@ mod features { } cfg_if::cfg_if! { - if #[cfg(any(all(target_arch = "aarch64", target_endian = "little"), all(target_arch = "arm", target_endian = "little"), + if #[cfg(any(all(target_arch = "aarch64", target_endian = "little"), all(target_arch = "armxxx", target_endian = "little"), target_arch = "x86", target_arch = "x86_64"))] { impl Features { // SAFETY: This must only be called after CPU features have been written @@ -186,7 +186,7 @@ mod features { const _: () = assert!(size_of::() == 0); cfg_if::cfg_if! { - if #[cfg(any(all(target_arch = "aarch64", target_endian = "little"), all(target_arch = "arm", target_endian = "little")))] { + if #[cfg(any(all(target_arch = "aarch64", target_endian = "little"), all(target_arch = "armxxx", target_endian = "little")))] { pub mod arm; use arm::featureflags; } else if #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] { diff --git a/src/cpu/arm.rs b/src/cpu/arm.rs index 8da973a..92ffbbf 100644 --- a/src/cpu/arm.rs +++ b/src/cpu/arm.rs @@ -23,7 +23,7 @@ mod abi_assumptions { // (`N0`, `Limb`, `LimbMask`, `crypto_word_t` etc.). #[cfg(target_arch = "aarch64")] const _ASSUMED_POINTER_SIZE: usize = 8; - #[cfg(target_arch = "arm")] + #[cfg(target_arch = "armxxx")] const _ASSUMED_POINTER_SIZE: usize = 4; const _ASSUMED_USIZE_SIZE: () = assert!(size_of::() == _ASSUMED_POINTER_SIZE); const _ASSUMED_REF_SIZE: () = assert!(size_of::<&'static u8>() == _ASSUMED_POINTER_SIZE); @@ -95,7 +95,7 @@ pub(super) mod featureflags { polyfill::{once_cell::race, usize_from_u32}, }; use core::num::NonZeroUsize; - #[cfg(all(target_arch = "arm", target_endian = "little"))] + #[cfg(all(target_arch = "armxxx", target_endian = "little"))] use core::sync::atomic::{AtomicU32, Ordering}; pub(in super::super) fn get_or_init() -> cpu::Features { @@ -114,7 +114,7 @@ pub(super) mod featureflags { let merged = CAPS_STATIC | detected; #[cfg(all( - target_arch = "arm", + target_arch = "armxxx", target_endian = "little", target_has_atomic = "32" ))] @@ -181,7 +181,7 @@ pub(super) mod featureflags { ; // TODO(MSRV): 32-bit ARM doesn't support any static feature detection yet. - #[cfg(all(target_arch = "arm", target_endian = "little"))] + #[cfg(all(target_arch = "armxxx", target_endian = "little"))] pub(in super::super) const STATIC_DETECTED: u32 = 0; } diff --git a/src/cpu/arm/linux.rs b/src/cpu/arm/linux.rs index db9549c..6ae6c44 100644 --- a/src/cpu/arm/linux.rs +++ b/src/cpu/arm/linux.rs @@ -75,7 +75,7 @@ pub fn detect_features() -> u32 { #[cfg(all( not(target_env = "uclibc"), - all(target_arch = "arm", target_endian = "little") + all(target_arch = "armxxx", target_endian = "little") ))] pub fn detect_features() -> u32 { use super::CAPS_STATIC; diff --git a/src/digest/sha2/fallback.rs b/src/digest/sha2/fallback.rs index 556f57d..34afd81 100644 --- a/src/digest/sha2/fallback.rs +++ b/src/digest/sha2/fallback.rs @@ -22,7 +22,7 @@ use core::{ #[cfg_attr( any( all(target_arch = "aarch64", target_endian = "little"), - all(target_arch = "arm", target_endian = "little"), + all(target_arch = "armxxx", target_endian = "little"), target_arch = "x86_64" ), allow(dead_code) diff --git a/src/digest/sha2/mod.rs b/src/digest/sha2/mod.rs index 78ca27b..e4dc4fa 100644 --- a/src/digest/sha2/mod.rs +++ b/src/digest/sha2/mod.rs @@ -23,7 +23,7 @@ pub(super) const CHAINING_WORDS: usize = 8; #[cfg(any( all(target_arch = "aarch64", target_endian = "little"), - all(target_arch = "arm", target_endian = "little"), + all(target_arch = "armxxx", target_endian = "little"), target_arch = "x86_64" ))] #[macro_use] diff --git a/src/digest/sha2/sha2_32.rs b/src/digest/sha2/sha2_32.rs index 4f762d1..12ef87c 100644 --- a/src/digest/sha2/sha2_32.rs +++ b/src/digest/sha2/sha2_32.rs @@ -34,7 +34,7 @@ pub(crate) fn block_data_order_32( } else { sha2_32_ffi!(unsafe { () => sha256_block_data_order_nohw }, state, data, ()) } - } else if #[cfg(all(target_arch = "arm", target_endian = "little"))] { + } else if #[cfg(all(target_arch = "armxxx", target_endian = "little"))] { use cpu::{GetFeature as _, arm::Neon}; if let Some(cpu) = cpu.get_feature() { sha2_32_ffi!(unsafe { Neon => sha256_block_data_order_neon }, state, data, cpu) diff --git a/src/digest/sha2/sha2_64.rs b/src/digest/sha2/sha2_64.rs index 63c254e..6af8d1e 100644 --- a/src/digest/sha2/sha2_64.rs +++ b/src/digest/sha2/sha2_64.rs @@ -34,7 +34,7 @@ pub(crate) fn block_data_order_64( } else { sha2_64_ffi!(unsafe { () => sha512_block_data_order_nohw }, state, data, ()) } - } else if #[cfg(all(target_arch = "arm", target_endian = "little"))] { + } else if #[cfg(all(target_arch = "armxxx", target_endian = "little"))] { use cpu::{GetFeature as _, arm::Neon}; if let Some(cpu) = cpu.get_feature() { sha2_64_ffi!(unsafe { Neon => sha512_block_data_order_neon }, state, data, cpu) diff --git a/src/ec/curve25519/x25519.rs b/src/ec/curve25519/x25519.rs index 216648a..b0f1a0c 100644 --- a/src/ec/curve25519/x25519.rs +++ b/src/ec/curve25519/x25519.rs @@ -68,7 +68,7 @@ fn x25519_public_from_private( let private_key = ops::MaskedScalar::from_bytes_masked(*private_key); #[cfg(all( - all(target_arch = "arm", target_endian = "little"), + all(target_arch = "armxxx", target_endian = "little"), any(target_os = "android", target_os = "linux") ))] if let Some(cpu) = >::get_feature(&cpu_features) { @@ -115,7 +115,7 @@ fn x25519_ecdh( #[allow(unused_variables)] cpu_features: cpu::Features, ) { #[cfg(all( - all(target_arch = "arm", target_endian = "little"), + all(target_arch = "armxxx", target_endian = "little"), any(target_os = "android", target_os = "linux") ))] if let Some(cpu) = >::get_feature(&cpu_features) { @@ -166,7 +166,7 @@ fn x25519_ecdh( // BoringSSL uses `!defined(OPENSSL_APPLE)`. #[cfg(all( - all(target_arch = "arm", target_endian = "little"), + all(target_arch = "armxxx", target_endian = "little"), any(target_os = "android", target_os = "linux") ))] fn x25519_neon( diff --git a/src/lib.rs b/src/lib.rs index 726b6b0..3069568 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -82,7 +82,7 @@ #![cfg_attr( not(any( all(target_arch = "aarch64", target_endian = "little"), - all(target_arch = "arm", target_endian = "little"), + all(target_arch = "armxxx", target_endian = "little"), target_arch = "x86", target_arch = "x86_64", feature = "alloc" diff --git a/src/polyfill.rs b/src/polyfill.rs index cf51320..ec50aed 100644 --- a/src/polyfill.rs +++ b/src/polyfill.rs @@ -63,7 +63,7 @@ mod leading_zeros_skipped; #[cfg(any( all(target_arch = "aarch64", target_endian = "little"), - all(target_arch = "arm", target_endian = "little"), + all(target_arch = "armxxx", target_endian = "little"), target_arch = "x86", target_arch = "x86_64" ))] diff --git a/src/polyfill/slice/as_chunks.rs b/src/polyfill/slice/as_chunks.rs index bfe5ab5..2c6913d 100644 --- a/src/polyfill/slice/as_chunks.rs +++ b/src/polyfill/slice/as_chunks.rs @@ -37,7 +37,7 @@ impl<'a, T, const N: usize> AsChunks<'a, T, N> { self.0 } - #[cfg(any(target_arch = "aarch64", target_arch = "arm", target_arch = "x86_64"))] + #[cfg(any(target_arch = "aarch64", target_arch = "armxxx", target_arch = "x86_64"))] #[inline(always)] pub fn as_ptr(&self) -> *const [T; N] { self.0.as_ptr().cast() diff --git a/src/prefixed.rs b/src/prefixed.rs index 39f3f9f..f1b2bf8 100644 --- a/src/prefixed.rs +++ b/src/prefixed.rs @@ -84,7 +84,7 @@ macro_rules! prefixed_extern { #[deprecated = "`#[export_name]` creates problems and we will stop doing it."] #[cfg(not(any( all(target_arch = "aarch64", target_endian = "little"), - all(target_arch = "arm", target_endian = "little"), + all(target_arch = "armxxx", target_endian = "little"), target_arch = "x86", target_arch = "x86_64" )))]